package server;


import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;

import common.Player;


public class Classifica implements Serializable{

	private ArrayList<Player> giocatori;
	private PointComparator pcomp;
	
	
	//@ensures (giocatori!=null)&&(pcomp!=null);
	
	public Classifica(){
		giocatori = new ArrayList<Player>();
		pcomp=new PointComparator();
	}
	
	//@requires (playerattuale!=null)
	//@
	//@ensures 	(!(\exist int i; 0<=i && i<=giocatori.length-1; giocatori.get(i).equals(playerattuale)))
	//@			? (giocatori.size()==\old(giocatori.size())+1)&&(giocatori.contains(playerattuale))
	//@			: (playerattuale.getPunteggio()>\old(playerattuale.getPunteggio()));
	//@
	//@assignable giocatori;
	
	public void aggiornaClassifica(Player playerattuale){
				
		boolean risp=false;		
		for(Player y:giocatori)
			if(giocatori.size()!=0)
				if(playerattuale.getNomespecie().equals(y.getNomespecie())){
					y.setPunteggio(playerattuale.getPunteggio());
					risp=true;
				}					
		if(!risp)
			giocatori.add(playerattuale);
		
		Collections.sort(giocatori, pcomp);
	}

	public ArrayList<Player> getGiocatori() {
		return giocatori;
	}

	public void setGiocatori(ArrayList<Player> giocatori) {
		this.giocatori = giocatori;
	}
	
}
